前言:之前一直没有接触过web这方面的题,这次利用暑假时光好好学习,web真的是很有趣,虽然有的题很简单,但可以学习到很多知识,话不多说,做题。
view_source
用老版火狐浏览器,直接查看源码即可。
get_post
利用火狐进行传参,即可得出flag。
robots
做这道题之前,了解一下robots协议,爬虫协议,robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,如果有这个文件,robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
了解robots协议后,做题就好做了,直接访问robots.txt文件。
给了一个PHP文件名,访问一下即可得出flag
backup
不知道,百度百科一下
那加上后缀名即http://111.198.29.45:47771/index.php.bak
再访问一下,即可得出flag。
cookie
用burp抓一下包看看
添加后缀名
查看HTTP响应,即可得出flag
disabled_button
根据提示,将disabled删除即可点出flag
webshell
一句话,用菜刀进行连接
连接成功,即可得出flag
simple_php
1 | |
is_numeric() 函数用于检测变量是否为数字或数字字符串。
代码很好理解,传入对应的参数即可得出flag1
http://111.198.29.45:52319/?a=a
即可得出1
http://111.198.29.45:52319/?b=1236b
即可得出
拼接一下,即可得出flag
command_execution(命令执行)
做题之前,要先了解一下ping功能,waf等。
ping命令的使用方法及功能
WAF主要防护的是来自对网站源站的动态数据攻击,可防护的攻击类型包括SQL注入、XSS攻击、CSRF攻击、恶意爬虫、扫描器、远程文件包含等攻击,相当于防火墙。
常见的命令执行
command1 & command2 :先执行command2后执行command1
command1 && command2 :先执行command1后执行command2
command1 | command2 :只执行command2
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)
除此之外,我们还要了解一些常用的Linux命令。常用 Linux 命令
了解之后,我们便开始做题。
首先ping一下本地即127.0.0.1
ping通本地后,发现传输三个数据包,接下来就用到我们学到的Linux基本命令
查看一下,三个数据包中是否有flag.txt
输入命令127.0.0.1 & find / -name flag.txt
果然有,再输入命令127.0.0.1 | cat /home/flag.txt
查看flag.txt文件,即可得出flag。
这里得了解一下cat命令,用来查看文件内容
weak_auth( 弱身份验证 )
试试最常用的admin 123456
组合,竟然爆出了flag,真的是弱口令,不过查了其他方法,用爆破的方法也可以做出了,这里记录一下爆破过程。
先在GitHub上下载弱口令字典,用burpsuite进行爆破
用admin作为账号,试试登陆
看来账号就是admin,那么就只爆破密码就可以了
密码随便输入一个,抓一下包
将密码设置为变量
载入字典
发现到123456
时,长度不同,所以密码即为123456
,登陆一下即可得出flag
xff_referer
在此之前,我们需要了解下
xff——伪造IP地址来源
格式为:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
referer——伪造来源浏览器
伪造XFF头绕过服务器IP过滤
了解之后,便能够做题了
抓包,根据提示修改xff
此时页面显示必须来自https://www.google.com
根据提示,伪造来源服务器,即可得出flag
simple_js
打开之后,直接查看源代码,发现一串JS代码
1 | function dechiffre(pass_enc){ |
要做这道题就得看懂JS代码表达的意思,首先来了解代码中出现的一些方法
split() 方法用于把一个字符串分割成字符串数组。
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
prompt()方法用于显示可提示用户进行输入的对话框。
了解之后,便可以观察代码了
这一部分代码分为两个循环,但是仔细观察的话,第一个循环是将前五个Unicode 值,然后返回一个字符串,写一个简单的python脚本验证下
后一个循环功能是一样的,只不过是把后面的Unicode 值,返回成字符串。
返回的pass为
即不管我们输入什么,最终显示都是这个,所以这个是假的密码,那么真正的密码应该就是
十六进制转化为文本字符
再用简单的python脚本跑一下,即可得出flag
题虽然不是太难,但是可以学习到很多知识,接下来得快点学习python以写脚本用,方便做题。